#ifndef VISUALISATION_H
#define VISUALISATION_H
#include "ogreapplication.h"
#include "folder.h"
#include <iostream>


using namespace std;
using namespace Ogre;

//déclaration anticipée pour résoudre le problème d'inclusion cyclique entre myapplication et visualisation
class MyApplication;

class Visualisation 
{

	private :
		MyApplication * myApp;
		SceneNode* racine;
    public :
		Visualisation();
		~Visualisation();
        void setApplication(MyApplication * m); 

		//fonction permettant d'afficher un message dans le panneau d'affichage
        void afficherMessage ( string s ); 

		void ligne(SceneNode* sceneN,Vector3 pos1, Vector3 pos2);

		//creation de la racine du fileSystem
		void creerRacine(string nom, string nomMesh, Vector3 echelle);

		//creer une entite rattache a la scene racine 
		void creerEntite(string nom, string nomMesh, Vector3 position);

		void creerReprTest();

		//repartit les elements horizontalement dans l'espace
		//on fournira uniquement des espacements impaires
		void repartirElements( int espacement, int nbelements, vector<int> &vectPositions);

		//fonction pour ajouter un objet a la scene
		//void attachEntity(Entity * entity, SceneNode * sceneNode, Vector3 vScale, Vector3 vTrans)

		//getters
		SceneNode * getNoeud(String name);

		SceneNode * getRacine();

};

#endif // VISUALISATION_H
